package itheima01;


import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

/*
    java.io.OutputStreamWriter类:  是字符流通向字节流的桥梁  是一个字符流输出流  写出字符的
	    使用方式: OutputStream + 指定编码表
	    如果不指定编码表: 平台默认编码表 FileWriter的功能
	    常用方法:
	        OutputStreamWriter类 是Writer的子类,Writer有的方法,它都有
        构造方法:
            public OutputStreamWriter(OutputStream out, String charsetName) 
                参数:
                    OutputStream out: 字节输出流抽象父类,传递子类FileOutputStream类的对象
                    String charsetName: 编码表     常用编码表   GBK/UTF-8
        使用步骤:
            1.创建字节输出流OutputStream类的子类FileOutputStream类的对象fos,绑定源文件
            2.创建OutputStreamWriter类对象osw,传递fos,指定编码表
            3.OutputStreamWriter类对象osw调用write方法,写出数据
            4.关闭流释放资源


    问题:
        1.UTF-8编码,用GBK解码          浣犲ソ
        2.GBK编码,用UTF-8解码          ???
 */
public class Demo03OutputStreamWriter {
    public static void main(String[] args) throws IOException {
        writeUtf8File();
    }
    //写出GBK内容到文件
    private static void writeGbk2File() throws IOException{
        //1.创建字节输出流OutputStream类的子类FileOutputStream类的对象fos,绑定源文件
        FileOutputStream fos = new FileOutputStream("day13\\1.txt");

        //2.创建OutputStreamWriter类对象osw,传递fos,指定编码表
        OutputStreamWriter osw = new OutputStreamWriter(fos, "GBK");

        //3.OutputStreamWriter类对象osw调用write方法,写出数据
        osw.write("你好");

        //4.关闭流释放资源
        osw.close();
    }

    //写出UTF-8内容到文件
    private static void writeUtf8File() throws IOException{
        //1.创建字节输出流OutputStream类的子类FileOutputStream类的对象fos,绑定源文件
        //FileOutputStream fos = new FileOutputStream("day12\\utf8file2.txt");

        //2.创建OutputStreamWriter类对象osw,传递fos,指定编码表
        OutputStreamWriter osw =
                new OutputStreamWriter(new FileOutputStream("day13\\1.txt"),"UTF-8");

        //3.OutputStreamWriter类对象osw调用write方法,写出数据
        osw.write("你好");

        //4.关闭流释放资源
        osw.close();
    }
}
